package pe.edu.upc.e41a.javasoft.service;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import pe.edu.upc.e41a.javasoft.dao.PublicacionDao;
import pe.edu.upc.e41a.javasoft.dao.TransaccionDao;
import pe.edu.upc.e41a.javasoft.dao.UsuarioDao;
import pe.edu.upc.e41a.javasoft.domain.BusquedaTransaccion;
import pe.edu.upc.e41a.javasoft.domain.Publicacion;
import pe.edu.upc.e41a.javasoft.domain.Transaccion;
import pe.edu.upc.e41a.javasoft.domain.Usuario;

@Service
@Transactional
public class MisPublicacionesServiceImpl implements MisPublicacionesService {

	@Resource
	private TransaccionDao transaccionDao;
	
	@Resource
	private PublicacionDao publicacionDao;	
	
	@Resource
	private UsuarioDao usuarioDao;		
	
	@Override
	public List<Publicacion> listarPublicacionPorUsuarioPorEstado(Integer usuarioId, Character estado) {
		Usuario usuario = usuarioDao.findUsuario(usuarioId);

		if(usuario != null){
			List<Publicacion> mListPublicaciones;
			mListPublicaciones = publicacionDao.listarPublicacionPorUsuarioPorEstado(usuarioId, estado);
			if(mListPublicaciones.size() == 0){
				System.out.println("No hay publicaciones");
				return null;
			}else{
				return mListPublicaciones;
			}
		}else{
			System.out.println("codigo de Usuario no existe");
			return null;
		}
	}
	
	@Override
	public List<Transaccion> buscarVentasPorUsuario(Integer usuarioId) {
		List<Transaccion> mListBT;
		mListBT = transaccionDao.buscarVentasPorUsuario(usuarioId);
		if(mListBT.size() == 0){
			System.out.println("No se han registrado ventas");
			return null;
		}
		
		return mListBT;
	}

	@Override
	public List<Transaccion> buscarComprasPorUsuario(Integer usuarioId) {
		List<Transaccion> mListBT;
		mListBT = transaccionDao.buscarComprasPorUsuario(usuarioId);
		if(mListBT.size() == 0){
			System.out.println("No se han registrado compras");
			return null;
		}
		
		return mListBT;
	}
	
}
